Termination w.r.t. Q of the following Term Rewriting System could be proven:
Q restricted rewrite system:
The TRS R consists of the following rules:
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
bits(0) → 0
bits(s(x)) → s(bits(half(s(x))))
Q is empty.
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS Reverse
Q restricted rewrite system:
The TRS R consists of the following rules:
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
bits(0) → 0
bits(s(x)) → s(bits(half(s(x))))
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
bits(0) → 0
bits(s(x)) → s(bits(half(s(x))))
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
bits(0) → 0
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(bits(x1)) = 2 + x1
POL(half(x1)) = x1
POL(s(x1)) = x1
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS Reverse
Q restricted rewrite system:
The TRS R consists of the following rules:
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
bits(s(x)) → s(bits(half(s(x))))
Q is empty.
The TRS is overlay and locally confluent. By [19] we can switch to innermost.
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QTRS Reverse
Q restricted rewrite system:
The TRS R consists of the following rules:
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
bits(s(x)) → s(bits(half(s(x))))
The set Q consists of the following terms:
half(0)
half(s(0))
half(s(s(x0)))
bits(s(x0))
Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:
HALF(s(s(x))) → HALF(x)
BITS(s(x)) → BITS(half(s(x)))
BITS(s(x)) → HALF(s(x))
The TRS R consists of the following rules:
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
bits(s(x)) → s(bits(half(s(x))))
The set Q consists of the following terms:
half(0)
half(s(0))
half(s(s(x0)))
bits(s(x0))
We have to consider all minimal (P,Q,R)-chains.
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ QTRS Reverse
Q DP problem:
The TRS P consists of the following rules:
HALF(s(s(x))) → HALF(x)
BITS(s(x)) → BITS(half(s(x)))
BITS(s(x)) → HALF(s(x))
The TRS R consists of the following rules:
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
bits(s(x)) → s(bits(half(s(x))))
The set Q consists of the following terms:
half(0)
half(s(0))
half(s(s(x0)))
bits(s(x0))
We have to consider all minimal (P,Q,R)-chains.
We have reversed the following QTRS:
The set of rules R is
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
bits(0) → 0
bits(s(x)) → s(bits(half(s(x))))
The set Q is empty.
We have obtained the following QTRS:
0'(half(x)) → 0'(x)
0'(s(half(x))) → 0'(x)
s(s(half(x))) → half(s(x))
0'(bits(x)) → 0'(x)
s(bits(x)) → s(half(bits(s(x))))
The set Q is empty.
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS Reverse
↳ QTRS
↳ RFCMatchBoundsTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
0'(half(x)) → 0'(x)
0'(s(half(x))) → 0'(x)
s(s(half(x))) → half(s(x))
0'(bits(x)) → 0'(x)
s(bits(x)) → s(half(bits(s(x))))
Q is empty.
Termination of the TRS R could be shown with a Match Bound [6,7] of 1. This implies Q-termination of R.
The following rules were used to construct the certificate:
0'(half(x)) → 0'(x)
0'(s(half(x))) → 0'(x)
s(s(half(x))) → half(s(x))
0'(bits(x)) → 0'(x)
s(bits(x)) → s(half(bits(s(x))))
The certificate found is represented by the following graph.
The certificate consists of the following enumerated nodes:
121, 122, 123, 126, 124, 125, 127, 130, 128, 129
Node 121 is start node and node 122 is final node.
Those nodes are connect through the following edges:
- 121 to 123 labelled half_1(0)
- 121 to 122 labelled 0'_1(0), 0'_1(1)
- 121 to 124 labelled s_1(0)
- 122 to 122 labelled #_1(0)
- 123 to 122 labelled s_1(0)
- 123 to 127 labelled half_1(1)
- 123 to 128 labelled s_1(1)
- 126 to 122 labelled s_1(0)
- 126 to 127 labelled half_1(1)
- 126 to 128 labelled s_1(1)
- 124 to 125 labelled half_1(0)
- 125 to 126 labelled bits_1(0)
- 127 to 122 labelled s_1(1)
- 127 to 127 labelled half_1(1)
- 127 to 128 labelled s_1(1)
- 130 to 122 labelled s_1(1)
- 130 to 127 labelled half_1(1)
- 130 to 128 labelled s_1(1)
- 128 to 129 labelled half_1(1)
- 129 to 130 labelled bits_1(1)